home *** CD-ROM | disk | FTP | other *** search
/ isnet Internet / Isnet Internet CD.iso / prog / chat / 12 / 12.exe / SYSTEM / IRC2.MRC < prev    next >
Encoding:
Text File  |  2000-02-11  |  16.7 KB  |  376 lines

  1. ;%%%%%%%%%%%%%%%%%%%%%%%%
  2. ;script irc2
  3. ;version 3.0
  4. ;author Quietust
  5. ;email quietust@ircN.org
  6. ;url http://www.ircN.org
  7. ;%%%%%%%%%%%%%%%%%%%%%%%%
  8. on 1:SOCKOPEN:irc2.* {
  9.   if ($sockerr > 0) {
  10.     i2.secho $sockname $colour(Info) *** Connection attempt failed...
  11.     return
  12.   }
  13.   if ($portfree(113)) socklisten identd 113
  14.   i2.set $sockname con on
  15.   if (%irc2.nick) i2.set $sockname me %irc2.nick
  16.   elseif (%irc2.altnick) i2.set $sockname me %irc2.altnick
  17.   else i2.set $sockname me $left($me,8) $+ $rand(0,9)
  18.   i2.set $sockname me.h $hc($i2.var($sockname,me))
  19.   i2.quote $sockname NICK $i2.var($sockname,me)
  20.   if ($i2.var($sockname,pass)) i2.quote PASS $i2.var($sockname,pass)
  21.   i2.quote $sockname USER $mirc.ini(ident,userid) " $+ $host $+ " " $+ $sock($sockname).ip $+ " : $+ $mirc.ini(mirc,user)
  22.   if ($window($i2.status($sockname))) titlebar $i2.status($sockname) $i2.var($sockname,pass)
  23.   else i2.exit $sockname
  24. }
  25. on 1:SOCKREAD:irc2.* {
  26.   if ($sockerr > 0) {
  27.     i2.secho $sockname $colour(Info) *** Connection lost
  28.     timoff %timer.i2notify timer.i2notify
  29.     if ($mflag(options,n0,27) == 1) sockclose identd
  30.     i2.quit $sockname
  31.     i2.closechans
  32.     return
  33.   }
  34.   sockread %i2.parse
  35.   if ($sockbr == 0) return
  36.   i2.parse $sockname %i2.parse
  37. }
  38. on 1:SOCKCLOSE:irc2.* {
  39.   i2.secho $sockname $colour(Info) *** Disconnected
  40.   timoff %timer.i2notify timer.i2notify
  41.   if ($mflag(options,n0,27) == 1) sockclose identd
  42.   i2.quit $sockname
  43. }
  44. on 1:INPUT:@irc*á* {
  45.   if ($1 == $null) halt
  46.   elseif ($left($1,1) != /) {
  47.     if ($active == $i2.status($i2.actsession($active))) i2.secho $i2.actsession($active) $colour(Info) *** You're not on a channel
  48.     elseif ((%nc == on) && ($right($1,1) == %nch) && ($1 != %nch) && ($chr(44) !isin $getleft($1)) && ($chr(40) !isin $getleft($1)) && ($chr(41) !isin $getleft($1)) && ($i2.ncc($i2.actsession($active),$getleft($1)))) i2.pmsg $i2.actsession($active) $i2.active $ncomp($i2.ncc($i2.actsession($active),$getleft($1))) $2-
  49.     else i2.pmsg $i2.actsession($active) $i2.active $1-
  50.   }
  51.   elseif ($1 == /say) i2.pmsg $i2.actsession($active) $i2.active $2-
  52.   elseif ($1 == //say) .timer 1 0 i2.pmsg $i2.actsession($active) $i2.active $2-
  53.   elseif (($1 == /j) || ($1 == /join)) {
  54.     if ($2 != $null) i2.join $i2.actsession($active) $2-
  55.     else i2.iecho $i2.actsession($active) Syntax: $1 <channel>
  56.   }
  57.   elseif (($1 == /p) || ($1 == /part)) {
  58.     if ($i2.ischan($2)) i2.part $i2.actsession($active) $2 $3-
  59.     elseif ($i2.ischan($i2.active)) i2.part $i2.actsession($active) $i2.active $2-
  60.     else i2.iecho $i2.actsession($active) Syntax: $1 [channel] [reason]
  61.   }
  62.   elseif (($1 == /m) || ($1 == /msg)) i2.pmsg $i2.actsession($active) $i2.nc($i2.actsession($active),$2) $3-
  63.   elseif (($1 == /n) || ($1 == /notice)) i2.notice $i2.actsession($active) $2-
  64.   elseif ($1 == /ctcp) i2.ctcp $i2.actsession($active) $i2.nc($i2.actsession($active),$2) $3-
  65.   elseif ($1 == /ping) i2.ctcp2 $i2.actsession($active) PING $2
  66.   elseif ($1 == /ver) i2.ctcp2 $i2.actsession($active) VERSION $2
  67.   elseif ($1 == /addon) i2.ctcp2 $i2.actsession($active) ADDON $2
  68.   elseif ($1 == /nick) {
  69.     if ($2 != $null) i2.quote $i2.actsession($active) nick $2
  70.     else i2.iecho $i2.actsession($active) Syntax: /nick <nick>
  71.   }
  72.   elseif ($1 == /cycle) i2.cycle $i2.actsession($active) $2
  73.   elseif ($1 == /ban) i2.ban $i2.actsession($active) $2-
  74.   elseif ($1 == /op) {
  75.     if ($2 != $null) i2.mmode $i2.actsession($active) + o $2-
  76.     else i2.syntax $i2.actsession($active) $1
  77.   }
  78.   elseif ($1 == /dop) {
  79.     if ($2 != $null) i2.mmode $i2.actsession($active) - o $2-
  80.     else i2.syntax $i2.actsession($active) $1
  81.   }
  82.   elseif ($1 == /v) {
  83.     if ($2 != $null) i2.mmode $i2.actsession($active) + v $2-
  84.     else i2.syntax $i2.actsession($active) $1
  85.   }
  86.   elseif ($1 == /dv) {
  87.     if ($2 != $null) i2.mmode $i2.actsession($active) - v $2-
  88.     else i2.syntax $i2.actsession($active) $1
  89.   }
  90.   elseif (($1 == /k) || ($1 == /kick)) i2.kick $i2.actsession($active) $1-
  91.   elseif ($1 == /i) {
  92.     if ($2 != $null) i2.quote $i2.actsession($active) invite $2 $i2.active
  93.     else i2.iecho $i2.actsession($active) Syntax: /i <nick>
  94.   }
  95.   elseif (($1 == /invite) && ($i2.ischan($3) == $false)) i2.iecho $i2.actsession($active) Syntax: /invite <nick> <channel>
  96.   elseif (($1 == /kb) || ($1 == /bk)) {
  97.     if ($2 != $null) {
  98.       if (($i2.ischan($2)) && ($i2.ischan($3) == $false)) i2.ban $i2.actsession($active) $2 $3 3
  99.       else i2.ban $i2.actsession($active) $2 3
  100.       i2.kick $i2.actsession($active) $1-
  101.     }
  102.     else i2.iecho $i2.actsession($active) Syntax: $1 [chan] <nick> [reason]
  103.   }
  104.   elseif ($1 == /save) {
  105.     if ($i2.ischan($i2.active)) {
  106.       set %i2cloc $swlc($active)
  107.       iecho Saved irc2 channel window locations.
  108.     }
  109.     elseif ($i2.active == Status:) {
  110.       set %i2loc $swlc($active)
  111.       iecho Saved irc2 status window location.
  112.     }
  113.     else {
  114.       set %i2qloc $swlc($active)
  115.       iecho Saved irc2 query window locations.
  116.     }
  117.   }
  118.   elseif ($1 == /topic) {
  119.     if ($3) i2.quote $i2.actsession($active) topic $2 : $+ $3-
  120.     else i2.quote $i2.actsession($active) topic $2
  121.   }
  122.   elseif ($1 == /me) {
  123.     i2.quote $i2.actsession($active) privmsg $i2.active :ACTION $2- $+ 
  124.     i2.techo $i2.actsession($active) $i2.active $colour(Action) * $i2.pst($i2.actsession($active),$i2.var($i2.actsession($active),me),$i2.active) $2-
  125.   }
  126.   elseif ($1 == /quit) i2.quit $i2.actsession($active) $2-
  127.   elseif ($1 == /exit) i2.exit $i2.actsession($active) $2-
  128.   elseif ($1 == /server) {
  129.     if ($2 != $null) i2.changeserver $i2.actsession($active) $2 $3
  130.     else i2.iecho $i2.actsession($active) Syntax: /server <server> [port]
  131.   }
  132.   elseif ($1 == /w) i2.quote $i2.actsession($active) whois $2-
  133.   elseif ($1 == /wi) i2.quote $i2.actsession($active) whois $2 $2
  134.   elseif ($1 == /who) {
  135.     if ($2 != $null) i2.who $i2.actsession($active) $2
  136.     else i2.who $i2.actsession($active) $i2.active
  137.   }
  138.   elseif ($1 == /dns) {
  139.     if (($2 != $null) && (. !isin $2)) {
  140.       i2.set $i2.actsession($active) dns on
  141.       i2.quote $i2.actsession($active) userhost $2
  142.     }
  143.     elseif (. isin $2) dns $2
  144.     else i2.iecho $i2.actsession($active) Syntax: /dns <nickname|address>
  145.   }
  146.   elseif ($1 == /t) {
  147.     if ($2 != $null) i2.quote $i2.actsession($active) topic $i2.active : $+ $2-
  148.     else i2.quote $i2.actsession($active) topic $i2.active
  149.   }
  150.   elseif ($1 == /dcc) {
  151.     if (($2 == chat) || ($2 == send)) {
  152.       set %i2.dccnick $i2.actsession($active) $3
  153.       .enable #i2.dcc
  154.       .timer 1 0 dcc $2 $me $4-
  155.     }
  156.     else i2.iecho $i2.actsession($active) Syntax: /dcc <send|chat> <nickname> [file]
  157.   }
  158.   elseif ($1 == /clear) clear $active
  159.   elseif ($1 == /ame) i2.ame $i2.actsession($active) $2-
  160.   elseif ($1 == /amsg) i2.amsg $i2.actsession($active) $2-
  161.   elseif ($1 == /away) i2.away $i2.actsession($active) $2-
  162.   elseif ($1 == /back) i2.back $i2.actsession($active) $2-
  163.   elseif ($1 == /sv) i2.pmsg $i2.actsession($active) $i2.active %irc2.ver - ircN - [ver $+ $gettok(%ver,2,32) $+ ] - $nv($2) -
  164.   elseif ($1 == /av) {
  165.     if (%aver) i2.pmsg $i2.actsession($active) $i2.active %irc2.ver - ircN - [ver $+ $gettok(%ver,2,32) $+ ] - $nv($2) - [ $avconv(%aver) ] -
  166.     else i2.iecho $i2.actsession($active) No addons were detected.
  167.   }
  168.   elseif ($1 == /tv) {
  169.     if (%theme == on) i2.pmsg $i2.actsession($active) $i2.active %irc2.ver - ircN - [ver $+ $gettok(%ver,2,32) $+ ] - $nv($2) - [ $themefn ] -
  170.     else i2.iecho $i2.actsession($active) No theme loaded.
  171.   }
  172.   elseif ($1 == /relm) {
  173.     if ($2 != $null) i2.pmsg $i2.actsession($active) $2 %i2.rel.msg
  174.     else i2.pmsg $i2.actsession($active) $i2.active %i2.rel.msg
  175.   }
  176.   elseif ($1 == /reln) {
  177.     if ($2 != $null) i2.pmsg $i2.actsession($active) $2 %i2.rel.not
  178.     else i2.pmsg $i2.actsession($active) $i2.active %i2.rel.not
  179.   }
  180.   elseif ($1 == /relc) {
  181.     if ($2 != $null) i2.pmsg $i2.actsession($active) $2 %i2.rel.ctcp
  182.     else i2.pmsg $i2.actsession($active) $i2.active %i2.rel.ctcp
  183.   }
  184.   elseif ($1 == /relsm) {
  185.     if ($2 != $null) i2.pmsg $i2.actsession($active) $2 %i2.rel.sm
  186.     else i2.pmsg $i2.actsession($active) $i2.active %i2.rel.sm
  187.   }
  188.   elseif ($1 == /relsn) {
  189.     if ($2 != $null) i2.pmsg $i2.actsession($active) $2 %i2.rel.sn
  190.     else i2.pmsg $i2.actsession($active) $i2.active %i2.rel.sn
  191.   }
  192.   elseif ($1 == /relsc) {
  193.     if ($2 != $null) i2.pmsg $i2.actsession($active) $2 %i2.rel.sc
  194.     else i2.pmsg $i2.actsession($active) $i2.active %i2.rel.sc
  195.   }
  196.   elseif ($1 == /quote) i2.quote $i2.actsession($active) $2-
  197.   elseif ($1 == /names) {
  198.     i2.set $i2.actsession($active) names.nottop on
  199.     if ($2 != $null) i2.names $i2.actsession($active) $2
  200.     else i2.names $i2.actsession($active) $i2.active
  201.   }
  202.   elseif ($1 == /mode) {
  203.     i2.set $i2.actsession($active) joining on
  204.     i2.quote $i2.actsession($active) mode $2-
  205.   }
  206.   elseif ($1 == /help) help
  207.   elseif ($1 == /notify) {
  208.     i2.unset $i2.actsession($active) notify
  209.     i2.notify $i2.actsession($active)
  210.   }
  211.   elseif (($1 == /wallops) || ($1 == /locops) || ($1 == /wallchops) || ($1 == /globops) || ($1 == /swallops) || ($1 == /operwall)) i2.quote $i2.actsession($active) $remove($1,/) : $+ $2-
  212.   elseif (($1 == /kill) || ($1 == /kline) || ($1 == /squit)) i2.quote $i2.actsession($active) $remove($1,/) $2 : $+ $3-
  213.   elseif ($left($1,2) == /.) $right($1,$sub($len($1),2)) $2-
  214.   elseif ($left($1,3) == //.) .timer 1 0 $right($1,$sub($len($1),2)) $2-
  215.   else i2.quote $i2.actsession($active) $getright($1) $2-
  216.   halt
  217. }
  218. on 1:CLOSE:@irc*á* {
  219.   if ($i2.ischan($gettok($target,2,160))) i2.quote $i2.actsession($target) part $gettok($target,2,160)
  220.   elseif ($target == $i2.status($i2.actsession($target))) i2.exit $i2.actsession($target)
  221. }
  222. menu @i2.channel {
  223.   $iif($mouse.win,part) { i2.part $i2.actsession($active) $i2.active }
  224.   $iif($mouse.win,who) { i2.who $i2.actsession($active) $i2.active }
  225.   -
  226.   $iif($mouse.win,irc2)
  227.   .exit { i2.exit $i2.actsession($active) }
  228.   .disconnect { i2.quit $i2.actsession($active) }
  229.   -
  230.   $iif($mouse.win,ctcp)
  231.   .xlist { i2.ctcp $i2.actsession($active) $i2.active xdcc list }
  232.   .ping { i2.ctcp $i2.actsession($active) $i2.active ping }
  233.   .time { i2.ctcp $i2.actsession($active) $i2.active time }
  234.   .other { i2.ctcp $i2.actsession($active) $i2.active $$?="Enter ctcp request" }
  235.   .finger { i2.ctcp $i2.actsession($active) $i2.active finger }
  236.   .addon { i2.ctcp $i2.actsession($active) $i2.active addon }
  237.   .version { i2.ctcp $i2.actsession($active) $i2.active version }
  238.   $iif($mouse.win,topic)
  239.   .new { i2.quote $i2.actsession($active) topic $i2.active : $+ $$?="Enter new topic" }
  240.   .-
  241.   .random { i2.quote $i2.actsession($active) topic $i2.active : $+ $read $td(quotes.txt) }
  242.   $iif($mouse.win,mode)
  243.   .secret
  244.   ..+s { i2.quote $i2.actsession($active) mode $i2.active +s }
  245.   ..-
  246.   ..-s { i2.quote $i2.actsession($active) mode $i2.active -s }
  247.   .private
  248.   ..+p { i2.quote $i2.actsession($active) mode $i2.active +p }
  249.   ..-
  250.   ..-p { i2.quote $i2.actsession($active) mode $i2.active -p }
  251.   .limit users
  252.   ..+l { i2.quote $i2.actsession($active) mode $i2.active +l $$?="Enter number of users allowed" }
  253.   ..-
  254.   ..-l { i2.quote $i2.actsession($active) mode $i2.active -l }
  255.   .invite only
  256.   ..+i { i2.quote $i2.actsession($active) mode $i2.active +i }
  257.   ..-
  258.   ..-i { i2.quote $i2.actsession($active) mode $i2.active -i }
  259.   .moderated
  260.   ..+m { i2.quote $i2.actsession($active) mode $i2.active +m }
  261.   ..-
  262.   ..-m { i2.quote $i2.actsession($active) mode $i2.active -m }
  263.   .channel key
  264.   ..+k { i2.quote $i2.actsession($active) mode $i2.active +k $$?="Enter channel key" }
  265.   ..-
  266.   ..-k { i2.quote $i2.actsession($active) mode $i2.active -k $i2.key($i2.actsession($active),$i2.active) }
  267.   .protect topic
  268.   ..+t { i2.quote $i2.actsession($active) mode $i2.active +t }
  269.   ..-
  270.   ..-t { i2.quote $i2.actsession($active) mode $i2.active -t }
  271.   .external msg
  272.   ..+n { i2.quote $i2.actsession($active) mode $i2.active +n }
  273.   ..-
  274.   ..-n { i2.quote $i2.actsession($active) mode $i2.active -n }
  275.   -
  276.   $iif($mouse.win,utils)
  277.   .info { scriptinfo }
  278.   .help { help }
  279.   $iif($mouse.win,remote)
  280.   .away
  281.   ..silent { i2.away $i2.actsession($active) -s $$?="Away message" }
  282.   ..default { i2.away $i2.actsession($active) %defaulta }
  283.   ..verbose { i2.away $i2.actsession($active) $$?="Away message" }
  284.   .back
  285.   ..silent { i2.back $i2.actsession($active) -s }
  286.   ..default { i2.back $i2.actsession($active) %dback }
  287.   ..verbose { i2.back $i2.actsession($active) $$?="Return message" }
  288.   $iif($mouse.win == $null,whois) { i2.quote $i2.actsession($active) whois $i2.actline }
  289.   $iif($mouse.win == $null,who) { i2.who $i2.actsession($active) $i2.actline }
  290.   $iif($mouse.win == $null,query) { window -ae $i2.win($i2.actsession($active),$i2.actline) %i2qloc @i2.query $replace($readini $mircini Fonts fquery,$chr(44),$chr(32)) }
  291.   -
  292.   $iif($mouse.win == $null,bans)
  293.   .kb
  294.   ..fast { i2.ban $i2.actsession($active) $i2.active $i2.actline 3 | i2.kick $i2.actsession($active) $i2.active $i2.actline %shitkick }
  295.   ..msg { i2.kick $i2.actsession($active) $i2.active $i2.actline $$?="Enter your reason:" | i2.ban $i2.actsession($active) $i2.active $i2.actline 3 }
  296.   .ban { i2.ban $i2.actsession($active) $i2.active $i2.actline 3 }
  297.   $iif($mouse.win == $null,mode)
  298.   .op { i2.mmode $i2.actsession($active) + o }
  299.   .dop { i2.mmode $i2.actsession($active) - o }
  300.   .-
  301.   .v { i2.mmode $i2.actsession($active) + v }
  302.   .dv { i2.mmode $i2.actsession($active) - v }
  303.   $iif($mouse.win == $null,kicks)
  304.   .fast { i2.kick $i2.actsession($active) $i2.active $i2.actline }
  305.   .msg { i2.kick $i2.actsession($active) $i2.active $i2.actline $$?="Enter your reason" }
  306.   -
  307.   $iif($mouse.win == $null,dcc)
  308.   .chat { set %i2.dccnick $i2.actsession($active) $i2.actline | .enable #i2.dcc | .timer 1 0 dcc chat $me }
  309.   .send { set %i2.dccnick $i2.actsession($active) $i2.actline | .enable #i2.dcc | .timer 1 0 dcc send $me }
  310.   $iif($mouse.win == $null,ctcp)
  311.   .mass
  312.   ..ping { i2.mctcp $i2.actsession($active) PING $ticks }
  313.   ..time { i2.mctcp $i2.actsession($active) TIME }
  314.   ..finger { i2.mctcp $i2.actsession($active) FINGER }
  315.   ..version { i2.mctcp $i2.actsession($active) VERSION }
  316.   ..-
  317.   ..other { i2.mctcp $i2.actsession($active) $$?="Enter ctcp:" }
  318.   .-
  319.   .ping { i2.ctcp $i2.actsession($active) $i2.actline ping }
  320.   .time { i2.ctcp $i2.actsession($active) $i2.actline time }
  321.   .page { i2.ctcp $i2.actsession($active) $i2.actline page $?="page message:" }
  322.   .xdcc
  323.   ..list { i2.ctcp $i2.actsession($active) $i2.actline xdcc list }
  324.   ..help { i2.ctcp $i2.actsession($active) $i2.actline xdcc help }
  325.   ..send { i2.ctcp $i2.actsession($active) $i2.actline xdcc send #$$?="send pack #?" }
  326.   ..queue { i2.ctcp $i2.actsession($active) $i2.actline xdcc queue }
  327.   .other { i2.ctcp $i2.actsession($active) $i2.actline $$?="enter ctcp request" }
  328.   .finger { i2.ctcp $i2.actsession($active) $i2.actline finger }
  329.   .version { i2.ctcp $i2.actsession($active) $i2.actline version }
  330. }
  331. menu @i2.status {
  332.   irc2
  333.   .exit { i2.exit $i2.actsession($active) }
  334.   .disconnect { i2.quit $i2.actsession($active) }
  335.   -
  336.   server
  337.   .time { i2.quote $i2.actsession($active) time }
  338.   .motd { i2.quote $i2.actsession($active) motd }
  339.   .lusers { i2.quote $i2.actsession($active) lusers }
  340.   .admin { i2.quote $i2.actsession($active) admin }
  341.   -
  342.   servers { servers }
  343.   -
  344.   about
  345.   .ircN 7.0 by Quietust { run notepad readme.txt }
  346.   .www.ircN.org { www http://www.ircN.org }
  347.   .-
  348.   .documentation
  349.   ..faq { run notepad $dd(faq.txt) }
  350.   ..help { run ircN.hlp }
  351.   ..readme { readme }
  352. }
  353. menu @i2.query {
  354.   whois { i2.quote $i2.actsession($active) whois $i2.active }
  355.   who { i2.who $i2.actsession($active) $i2.active }
  356.   -
  357.   invite { i2.quote $i2.actsession($active) invite $i2.active #$$?="inviting [ $i2.active ] to channel:" }
  358.   dcc
  359.   .chat { set %i2.dccnick $i2.actsession($active) $i2.active | .enable #i2.dcc | .timer 1 0 dcc chat $me }
  360.   .send { set %i2.dccnick $i2.actsession($active) $i2.active | .enable #i2.dcc | .timer 1 0 dcc send $me }
  361.   ctcp
  362.   .ping { i2.ctcp $i2.actsession($active) $i2.active ping }
  363.   .time { i2.ctcp $i2.actsession($active) $i2.active time }
  364.   .page { i2.ctcp $i2.actsession($active) $i2.active page $?="page message:" }
  365.   .xdcc
  366.   ..list { i2.ctcp $i2.actsession($active) $i2.active xdcc list }
  367.   ..help { i2.ctcp $i2.actsession($active) $i2.active xdcc help }
  368.   ..send { i2.ctcp $i2.actsession($active) $i2.active xdcc send #$$?="send pack #?" }
  369.   ..queue { i2.ctcp $i2.actsession($active) $i2.active xdcc queue }
  370.   .other { i2.ctcp $i2.actsession($active) $i2.active $$?="enter CTCP request" }
  371.   .finger { i2.ctcp $i2.actsession($active) $i2.active finger }
  372.   .version { i2.ctcp $i2.actsession($active) $i2.active version }
  373.   -
  374.   close { window -c $active }
  375. }
  376.